home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / internet / yam_i_dodatki / yamicons / install_yam-set < prev    next >
Text File  |  1996-09-26  |  20KB  |  498 lines

  1. ;---------------------------------------------------------
  2. ; $VER: FreshIconsV1.2.1-Softwareset-Installer Script 23. Mai 1997
  3. ; Version for the YAM-Package (YAM © by Marcel Beck)
  4. ; by Christian & Andre' Taulien of Strange Intelligence
  5. ; German/English Language
  6. ; Script-Version: 1.4
  7. ; Copyright (C) 1997 Strange Intelligence
  8. ; *** Attention: Foldstart="/*S*/" and Foldstop="/*E*/" *** (I use GoldED)
  9.  
  10. ;/*S*/ Variables
  11. ;// Setup these variables to make this script work for your intention
  12. (set #dos_destination "YAM:"); Software-package path
  13. (set #f_requirements  0)              ; Set to 1 to display the requirements on start
  14. (set #f_onlyexisting  0)              ; Set to 0 to  switch on forced icon-install (not only if already existing)
  15.  
  16. ;// Do not modify if possible:
  17. (set #dos_freshdrawer "SYS:System/FreshIcons") ; Default Drawer of the installed FreshIcons
  18. (set #dos_backup_dest "SYS:Storage/") ; backup-directory
  19. (set #temp            "")             ; name of the temporaryfile
  20. (set #dos_toolsdir    "c/")           ; The Path to the tools
  21. (set #dos_source      "")             ; name of the new freshicon
  22. (set #dos_presource   "")             ; Basics drawer
  23. (set #dos_backupfile  "")             ; The file to backup
  24. (set #dos_filename    "")             ; Filename without .info
  25. (set #dos_filename_i  "")             ; Filename with .info
  26. (set #dos_args        "")             ; Parameterlist for the call of updateicon
  27. (set #updateicon_opts "")             ; options for update icons
  28. (set #f_Backup        0)              ; Backup yes or no
  29. (set #b_options       0)              ; Option-Flags for updateicon
  30. ;/*E*/
  31. ;---------------------------------------------------------
  32. ;/*S*/ Subroutines
  33. ;/*S*/ UP: english-strings
  34. (procedure P_englishinstall
  35. ; Definitions SW-Set-Specific
  36. (set #set_name                  "YAM")
  37.  
  38. ; Definitions common
  39. (set #ask_backup                "Shall a backup of all files to be modified be made?")
  40. (set #ask_WhereToBackup         (CAT "In which drawer the backupfiles shall be saved?\n(There, a drawer called \"" #set_name "\" will be created.)"))
  41. (set #ask_WhereFreshIcons       "Specify the  drawer of your installed FreshIcons-Package (Go into it!)")
  42. (set #ask_WherePackage          ( CAT "Specify your path to\"" #set_name "\"\n(Go into it!)"))
  43. (set #ask_options               "Which icon-properties shall i take over additionally?")
  44. (set #err_wronginstaller        "Your installer-program is too old. At least version 43 is required.\n\nIn the install-drawer of the FreshIcons this needed version is a copy of it.")
  45. (set #err_no_updateicon         "Could not find the FreshIcons-tool \"UpDateIcon\"\nNeither in C:, FreshIcons/c nor in current c/!")
  46. (set #err_nomakedir             "Couldn't create temporary-drawer!")
  47. (set #err_notemploc             "Couldn't localize temporary-drawer!")
  48. (set #err_desticonisdir         "The name of an icon to be installed is an existing dir. The icon will not be installed from the icon-set.")
  49. (set #gad_yes                   "Yes")
  50. (set #gad_no                    "No")
  51. (set #gad_opt_typ               "Icon type")
  52. (set #gad_opt_tooltype          "Tooltypes")
  53. (set #gad_opt_position          "Position")
  54. (set #gad_opt_deftool           "Default-Tool")
  55. (set #gad_opt_stack             "Stack-Size")
  56. (set #gad_opt_force             "Only already existing icons")
  57. (set #msg_makebackup            "Making backup of a file...")
  58. (set #msg_requirements          (CAT "Welcome to the installation of the FreshIcons-set for - " #set_name "\nThe following things are required:\n\nnone"))
  59. (set #msg_updateicon            "Modifying an icon...")
  60. (set #msg_installnewicon        "Installing new freshicons...")
  61. (set #msg_broken                (CAT #set_name "-IconSet Installation aborted!"))
  62. (set #msg_copyicon              "Copying an icon...")
  63. (set #help_backup               "Decide here, wether to make a backup of every single file to be changed by this installation-script.")
  64. (set #help_WhereToBackup        (CAT "Specify a drawer were to put all the backup files. For example: SYS:Storage/FreshIcons_Baks or so. A drawer \"" #set_name "_icons\"in it will be created automatically."))
  65. (set #help_WhereFreshIcons      "Here you shall specify the maindirectory of your installed version of the FreshIcons-package.\n\nIf you have installed the FreshIcons-package complete and did no changes in it, the predefined path should be set correct.")
  66. (set #help_WherePackage         (CAT "Here you shall specify the path your installed " #set_name "."))
  67. (set #help_requirements         "Hi-hoo! Make sure to fulfill the requirements!")
  68. (set #help_Options              "Here you shall specify each property which shall i take over from the icons in the icon set.")
  69. )
  70. ;/*E*/
  71. ;/*S*/ UP: german-string
  72. (procedure P_germaninstall
  73. ; Definitionen SW-Set-Specific
  74. (set #set_name                  "YAM")
  75. ; Definitionen common
  76. (set #ask_backup                "Soll ein Backup aller zu verändernden Dateien angefertigt werden?")
  77. (set #ask_WhereToBackup         (CAT "In welches Verzeichnis sollen die Dateien gesichert werden?\n(Es wird dort ein Verzeichnis \"" #set_name "_icons\" erstellt.)"))
  78. (set #ask_WhereFreshIcons       "Geben Sie Ihr FreshIcons-Hauptverzeichnis an!\n(In das Verzeichnis \"hineingehen\")")
  79. (set #ask_WherePackage          (CAT "Geben Sie den Pfad von \"" #set_name "\" an.\n(In das Verzeichnis \"hineingehen\".)"))
  80. (set #ask_options               "Welche Icon-Eigenschaften sollen zusätzlich aus dem Iconset übernommen werden?")
  81. (set #err_wronginstaller        "Ihr Installer-Programm ist zu alt. Es wird mindestens Version 43 benötigt.\n\nIm Install-Verzeichnis von FreshIcons ist diese Version enthalten.")
  82. (set #err_no_updateicon         "Ich konnte das FreshIcons-Programm \"UpDateIcon\" nicht finden.\n\nWeder im C:, FreshIcons/c noch im aktuellen c/ Verzeichnis!")
  83. (set #err_nomakedir             "Konnte temporäres Verzeichnis nicht erstellen!")
  84. (set #err_notemploc             "Konnte temporäres Verzeichnis nicht lokalisieren!")
  85. (set #err_desticonisdir         "Der Name eines zu installierenden Icons ist ein existierendes Verzeichnis. Das Icon wird deshalb ausgelassen.")
  86. (set #gad_yes                   "Ja")
  87. (set #gad_no                    "Nein")
  88. (set #gad_opt_typ               "Icon-Typ")
  89. (set #gad_opt_tooltype          "Merkmale")
  90. (set #gad_opt_position          "Position")
  91. (set #gad_opt_deftool           "Standard-Programm")
  92. (set #gad_opt_stack             "Stack-Größe")
  93. (set #gad_opt_force             "Nur schon existierende Icons")
  94. (set #msg_makebackup            "Erstelle Backup einer Datei...")
  95. (set #msg_requirements          (CAT "Willkommen zum Installationsskript vom FreshIcons-Set - " #set_name"\nEs sind zuvor folgende Bedingungen zu erfüllen:\n\nNö, keine. (Glück gehabt)"))
  96. (set #msg_updateicon            "Modifiziere Icon...")
  97. (set #msg_installnewicon        "Installiere neues Icon...")
  98. (set #msg_broken                (CAT #set_name "-IconSet Installation wurde abgebrochen!"))
  99. (set #msg_copyicon              "Ein Icon wird kopiert...")
  100. (set #help_backup               "Geben Sie hier an, ob alle Icons die verändert werden vorher nocheinmal zu Sicherheit woanders gespeichert werden sollen.")
  101. (set #help_WhereToBackup        "Geben Sie hier das Verzeichnis an, in dem alle Icons, die durch diese Installation verändert werden, gesichert werden sollen.")
  102. (set #help_WhereFreshIcons      "Geben Sie hier das Hauptverzeichnis der FreshIcons an.\nHaben Sie das FreshIcons-Paket komplett installiert und kein Verzeichnis woanders hinkopiert/verschoben, so müßte hier das richtige Verzeichnis bereits angezeigt werden.")
  103. (set #help_WherePackage         (CAT "Hier sollen Sie den Pfad angeben, in dem Sie " #set_name " installiert haben."))
  104. (set #help_requirements         "Holla! Erfüllen sie irgendwie und unbedingt die Bedingungen!")
  105. (set #help_Options              "Geben Sie hier die Eigenschaften an, welche\naus dem Set für die Icons übernommen werden sollen.")
  106. )
  107. ;/*E*/
  108. ;/*S*/ Temp-Stuff
  109. ;/*S*/ UP: Find path to a temporary directory
  110. (procedure P_maketemp
  111.     (if (<> (exists ("T:") (noreq) ) 2)
  112.         ;// then
  113.         (if (<> (exists ("Ram:T")) 2)
  114.             (
  115.                 (makedir ("ram:t"))
  116.                 (if (<>(exists ("ram:t")) 2)
  117.                     (message #err_notemploc)
  118.                     (set #temp "ram:")
  119.                 )
  120.             )
  121.             (set #temp "ram:t") ;// else "ram:t" exists
  122.         )
  123.         ;// else
  124.         (set #temp "T:") ;// else "T:" exists
  125.     )
  126.  
  127.     (set #temp (tackon #temp "freshicons_temp/"))
  128.  
  129.     (makedir #temp)
  130.     (if (<> (exists #temp) 2)
  131.         (abort #err_nomakedir)
  132.     )
  133.  
  134.     ;// Default backup-pfad
  135.     (trap 255 P_CleanUp)
  136. )
  137. ;/*E*/
  138. ;/*S*/ UP: Empties the temp-directory
  139. (procedure P_cleartemp
  140.     (run
  141.         (cat "delete " "force " "all " "quiet " (tackon #temp "#?"))
  142.     )
  143. )
  144. ;/*E*/
  145. ;/*S*/ UP: Deletes the temp-directory
  146. (procedure P_deletetemp
  147.     (run
  148.         (cat "delete " "force " "all " "quiet " #temp)
  149.     )
  150. )
  151. ;/*E*/
  152. ;/*S*/ UP: CleansUp the temp-directory
  153. (procedure P_CleanUp
  154.     (
  155.         (P_cleartemp)
  156.         (P_deletetemp)
  157.     )
  158. )
  159. ;/*E*/
  160. ;/*E*/
  161. ;/*S*/ UP: Asks for the name of the backup-path
  162. (PROCEDURE P_AskBackUp
  163.     ;// determine wether the user wants to make backups
  164.     (IF (ASKBOOL
  165.             (PROMPT #ask_backup)
  166.             (CHOICES #gad_yes #gad_no)
  167.             (HELP #help_backup)
  168.         )
  169.         ;//then
  170.         (SET #f_Backup 1)
  171.         ;//else
  172.         (SET #f_Backup 0)
  173.     )
  174.  
  175.     ;// wenn das Verzeichnis nicht existiert
  176.     (IF (= (EXISTS (TACKON #dos_backup_dest "FreshIcons_Baks")) 2)
  177.         (set #dos_backup_dest (TACKON #dos_backup_dest "FreshIcons_Baks"))
  178.     )
  179.     ;// if the User wants one
  180.     (IF (= 1 #f_Backup)
  181.         ;// then
  182.         (
  183.             ;// Ask for the backup-drawer
  184.             (SET #dos_backup_dest (ASKDIR
  185.                     (PROMPT #ask_WhereToBackup)
  186.                     (HELP #help_wheretobackup)
  187.                     (DEFAULT #dos_backup_dest)
  188.                 )
  189.             )
  190.             ;// append the name of the Software-package
  191.             (SET #dos_backup_dest (CAT (TACKON #dos_backup_dest #set_name) "_icons"))
  192.             ;// Create the wanted drawer
  193.             (MAKEDIR #dos_backup_dest )
  194.         )
  195.     )
  196. )
  197. ;/*E*/
  198. ;/*S*/ UP: Does the Backup of a given file
  199. (PROCEDURE P_DoBackup
  200.     ;// if a backup shall really be made
  201.     (if (= #f_Backup 1)
  202.         ;// test whether the source exists
  203.         (if (= (exists (tackon #dos_destination #dos_backupfile) (noreq) ) 1)
  204.             ;// if it exists
  205.             (
  206.                 ;// copy the source to the backup-drawer
  207.                 (COPYFILES
  208.                     (PROMPT #msg_makebackup)
  209.                     (SOURCE (tackon #dos_destination #dos_backupfile))
  210.                     (DEST   (tackon #dos_backup_dest (pathonly #dos_backupfile)))
  211.                 )
  212.             )
  213.         )
  214.     )
  215. )
  216. ;/*E*/
  217. ;/*S*/ UP: AskFreshDrawer
  218. (PROCEDURE P_AskFreshDrawer
  219. (set #temp_defpath "")
  220.  
  221.     (IF (= (EXISTS "SYS:System/FreshIconsV1.1" (noreq) ) 0)
  222.         ;//then
  223.         (
  224.             (IF (= (EXISTS "SYS:System/FreshIcons" (noreq) ) 0)
  225.                 ;// then
  226.                 (set #temp_defpath (expandpath "///"))
  227.                 ;// else
  228.                 (set #temp_defpath "SYS:System/FreshIcons")
  229.             )
  230.         )
  231.         ;//else
  232.         (set #temp_defpath "SYS:System/FreshIconsV1.1")
  233.     )
  234.     ;// Ask for the FreshIcons-Drawer
  235.     (SET #temp_defpath (askdir
  236.             (prompt #ask_WhereFreshIcons)
  237.             (help #help_whereFreshIcons)
  238.             (default #temp_defpath)    ;// often this is the right way to find it
  239.         )
  240.     )
  241. )
  242. ;/*E*/
  243. ;/*S*/ UP: Find the tool directory
  244. (PROCEDURE P_FindToolDir
  245. (set #temp_defpath (expandpath #dos_toolsdir))
  246.     (IF (= (EXISTS (tackon #temp_defpath "updateicon" ) (noreq) ) 0)
  247.         ;//then
  248.         (
  249.             (set #temp_defpath "c:" )
  250.             (IF (= (EXISTS (tackon #temp_defpath "updateicon" ) (noreq) ) 0)
  251.                 ;// then
  252.                 (
  253.                     (P_AskFreshDrawer)
  254.                     (set #temp_defpath (tackon #temp_defpath "c/"))
  255.  
  256.                     (IF (= (EXISTS (tackon #temp_defpath "updateicon" ) (noreq) ) 0)
  257.                         ;// then
  258.                         (ABORT #err_no_updateicon)
  259.                     )
  260.                 )
  261.                 ;// else
  262.             )
  263.         )
  264.         ;//else
  265.     )
  266.     (set #dos_toolsdir #temp_defpath)
  267. )
  268. ;/*E*/
  269. ;/*S*/ UP: AskOptions
  270. (PROCEDURE P_AskOptions
  271.     (set #b_options
  272.         (ASKOPTIONS
  273.             (PROMPT #ask_options)
  274.             (CHOICES
  275.                 #gad_opt_typ
  276.                 #gad_opt_tooltype
  277.                 #gad_opt_position
  278.                 #gad_opt_deftool
  279.                 #gad_opt_stack
  280.                 #gad_opt_force
  281.             )
  282.             (default (+ 6 (* 32 #f_onlyexisting)))
  283.             (help #help_Options)
  284.         )
  285.     )
  286.     (IF (IN #b_options 0)
  287.         (set #updateicon_opts (CAT #updateicon_opts " TYPE=2"))
  288.         (set #updateicon_opts (CAT #updateicon_opts " TYPE=0"))
  289.     )
  290.     (IF (IN #b_options 1)
  291.         (set #updateicon_opts (CAT #updateicon_opts " TOOLTYPES=2"))
  292.         (set #updateicon_opts (CAT #updateicon_opts " TOOLTYPES=0"))
  293.     )
  294.     (IF (IN #b_options 2)
  295.         (set #updateicon_opts (CAT #updateicon_opts " POSITION=2"))
  296.         (set #updateicon_opts (CAT #updateicon_opts " POSITION=0"))
  297.     )
  298.     (IF (IN #b_options 3)
  299.         (set #updateicon_opts (CAT #updateicon_opts " DEFTOOL=2"))
  300.         (set #updateicon_opts (CAT #updateicon_opts " DEFTOOL=0"))
  301.     )
  302.     (IF (IN #b_options 4)
  303.         (set #updateicon_opts (CAT #updateicon_opts " STACKSIZE=2"))
  304.         (set #updateicon_opts (CAT #updateicon_opts " STACKSIZE=0"))
  305.     )
  306.  
  307.     (IF (IN #b_options 5)
  308.         (set #f_onlyexisting 1)
  309.         (set #f_onlyexisting 0)
  310.     )
  311. )
  312. ;/*E*/
  313. ;/*S*/ UP: AskSys
  314. (PROCEDURE P_AskSys
  315.     ;// Ask for Software-Package-Drawer
  316.     (SET #dos_destination (askdir
  317.             (disk)
  318.             (prompt #ask_WherePackage)
  319.             (help #help_wherepackage)
  320.             (default (expandpath #dos_destination))
  321.         )
  322.     )
  323. )
  324. ;/*E*/
  325. ;/*S*/ UP: DoFile
  326. (PROCEDURE P_DoFile
  327.     ;// append ".info"
  328.     (SET #dos_filename_i (cat #dos_filename ".info"))
  329.     ;// set up the name of the backupfile- with the icon-filename
  330.     (SET #dos_backupfile #dos_filename_i)
  331.  
  332.     ;// do the backup if wanted
  333.     (P_DoBackUp)
  334.  
  335.     ;// Test the existing of the destination-icon
  336.     (IF (= (EXISTS (cat (TACKON #dos_destination #dos_filename_i) ) (noreq) ) 1)
  337.         ;// then ( if the icon to be modified does exist )
  338.         (
  339.             ;// set up the updateicon-command for the run statement in a variable
  340.             (SET #dos_args
  341.                 (cat "\"" (tackon #dos_toolsdir "UpDateIcon" ) "\""
  342.                      " SOURCE=\"" #dos_source "\" DESTINATION=\"" (TACKON #dos_destination #dos_filename) "\"" #updateicon_opts
  343.                 )
  344.             )
  345.  
  346.             ;// for debugging...
  347.             ;(message #dos_args)
  348.  
  349.             ;// now call the updateicon-program to do the real update
  350.             (RUN #dos_args
  351.                 (PROMPT (CAT #msg_updateicon "\n\n" #dos_filename))
  352.             )
  353.         )
  354.         ;// else ( if the icon to be modified, doesnt exist )
  355.         (
  356.             ;// if it is wanted to copy a icon doesnt exist in the software package yet
  357.             (IF (= #f_onlyexisting 0)
  358.                 ;// then
  359.                 (
  360.                     (SET #dos_source_i (cat #dos_source ".info"))
  361.                     (SET #dos_tempdest (TACKON #dos_destination (PATHONLY #dos_filename_i)))
  362.  
  363.                     ;// for debugging:
  364.                     ;(message (cat "Source:" #dos_source_i) )
  365.                     ;(message (cat "Dest:" (tackon #dos_destination (pathonly #dos_filename_i) )))
  366.                     ;(message (cat "Dir-Exist-Test:" (TACKON #dos_destination #dos_filename_i)))
  367.  
  368.                     ;// if the dest-icon-name is no existing directory
  369.                     (IF (<> (EXISTS (TACKON #dos_destination #dos_filename_i) (noreq) ) 2)
  370.                         ;// copy the files
  371.                         (COPYFILES
  372.                             (PROMPT (CAT #msg_installnewicon "\n\n\"" #dos_filename "\"" ))
  373.                             (SOURCE #dos_source_i)
  374.                             (DEST   #dos_tempdest)
  375.                         )
  376.                         ;// else
  377.                         (
  378.                             (MESSAGE #err_desticonisdir)
  379.                         )
  380.                     )
  381.                 )
  382.             )
  383.         )
  384.     )
  385. )
  386. ;/*E*/
  387. ;/*E*/
  388. ;---------------------------------------------------------
  389. ;/*S*/ ### Main ###
  390.     ;// Find out in which language to install
  391.     (IF (= @language "deutsch")
  392.         ;// then
  393.         (P_germaninstall)
  394.         ;// else
  395.         (P_englishinstall)
  396.     )
  397.  
  398.     ;// check the installer version...
  399.     (IF (<= @installer-version 0)
  400.         (abort #err_wronginstaller)
  401.     )
  402.  
  403.     ;// if this scripts has requirements
  404.     (IF (= #f_requirements 1)
  405.         ;// You should tell the user here, what is needed for this installation-script
  406.         (MESSAGE #msg_requirements
  407.             (help #help_requirements)
  408.         )
  409.     )
  410.  
  411. (COMPLETE 1)
  412.     ;// Ladies & Gentlemen...
  413.     (WELCOME)
  414.  
  415. (COMPLETE 5)
  416.     ;// Find the path to the perhaps-needed temporary path
  417.     (P_maketemp)
  418.  
  419.     ;// if something goes wrong later...
  420.     (ONERROR (
  421.             (P_CleanUp)
  422.             (EXIT
  423.                 #msg_broken
  424.                 (quiet)
  425.             )
  426.         )
  427.     )
  428.  
  429. (COMPLETE 10)
  430.     ;// find installed FreshIcons drawer
  431.     (P_FindToolDir)
  432.  
  433. (COMPLETE 15)
  434.     ;// find Software-path
  435.     (P_AskSys)
  436.  
  437. (COMPLETE 25)
  438.     ;// make clear the backup question
  439.     (P_AskBackup)
  440.  
  441. (COMPLETE 40)
  442.     ;// Ask for the options
  443.     (P_AskOptions)
  444.  
  445. (COMPLETE 45)
  446.     ;// State that we do something
  447.     (WORKING #msg_installnewicon)
  448.  
  449.     ;// determine the complete source drawer-name
  450.     (SET #dos_presource (expandpath (CAT #set_name "_Icons")))
  451.  
  452.     ;// Now the icons are to be updated...
  453. ;///////////////////////////////////////////////////////////////////////////
  454. ;// repeat this for every file!
  455. (COMPLETE 50)
  456.     (SET #dos_filename "YAM")
  457.     (SET #dos_source (TACKON #dos_presource "YAM"))
  458.     (P_DoFile)                                        
  459. (COMPLETE 51)
  460.     (SET #dos_filename "Changes")
  461.     (SET #dos_source (TACKON #dos_presource "Changes"))
  462.     (P_DoFile)                                       
  463. (COMPLETE 52)
  464.     (SET #dos_filename "Icons")
  465.     (SET #dos_source (TACKON #dos_presource "Icons"))
  466.     (P_DoFile)                                       
  467. (COMPLETE 53)
  468.     (SET #dos_filename "YAM.Guide")
  469.     (SET #dos_source (TACKON #dos_presource "YAM.Guide"))
  470.     (P_DoFile)                                        
  471. (COMPLETE 55)
  472.     (SET #dos_filename "Icons/empty")
  473.     (SET #dos_source (TACKON #dos_presource "empty"))
  474.     (P_DoFile)                                        
  475. (COMPLETE 57)
  476.     (SET #dos_filename "Icons/old")
  477.     (SET #dos_source (TACKON #dos_presource "old"))
  478.     (P_DoFile)                                        
  479. (COMPLETE 59)
  480.     (SET #dos_filename "Icons/new")
  481.     (SET #dos_source (TACKON #dos_presource "new"))
  482.     (P_DoFile)                                        
  483. (COMPLETE 64)
  484.     (SET #dos_filename "/YAM")
  485.     (SET #dos_source (TACKON #dos_presource "/YAM_Icons"))
  486.     (P_DoFile)                                        
  487. ;//////////////////////////////////////////////////////////////////////////
  488.  
  489.     ;// the same for the next and so on...
  490.  
  491. (COMPLETE 90)
  492.     ;// for the graceful exit
  493.     (SET @default-dest #dos_destination)
  494.     (P_CleanUp)
  495. (COMPLETE 100)
  496. ;/*E*/
  497.  
  498.